Fix mispositioned window menu in hi-dpi
authorMatthias Clasen <mclasen@redhat.com>
Thu, 23 Oct 2014 02:49:31 +0000 (22:49 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 23 Oct 2014 02:49:31 +0000 (22:49 -0400)
We always want to send the position in device pixels,
so apply the window scale before sending them out.

https://bugzilla.gnome.org/show_bug.cgi?id=738955

gdk/x11/gdkwindow-x11.c

index be3586b0debf7ed16a51b91188c2f9f805be7fb8..e4b10585fc3b14223f5351a61edf10a351cb05a5 100644 (file)
@@ -5604,6 +5604,7 @@ static gboolean
 gdk_x11_window_show_window_menu (GdkWindow *window,
                                  GdkEvent  *event)
 {
+  GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (window->impl);
   GdkDisplay *display = GDK_WINDOW_DISPLAY (window);
   GdkDevice *device;
   int device_id;
@@ -5636,8 +5637,8 @@ gdk_x11_window_show_window_menu (GdkWindow *window,
   xclient.window = GDK_WINDOW_XID (window);
   xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "_GTK_SHOW_WINDOW_MENU");
   xclient.data.l[0] = device_id;
-  xclient.data.l[1] = x_root;
-  xclient.data.l[2] = y_root;
+  xclient.data.l[1] = x_root * impl->window_scale;
+  xclient.data.l[2] = y_root * impl->window_scale;
   xclient.format = 32;
 
   XSendEvent (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XROOTWIN (window), False,